/*
 * TimeIncrementEvolutiveStrategy.h
 *
 *  Created on: 02/10/2011
 *      Author: godinho
 */

#ifndef TIMEINCREMENTEVOLUTIVESTRATEGY_H_
#define TIMEINCREMENTEVOLUTIVESTRATEGY_H_

#include <controller/TimeIncrementCalculationStrategy.h>

class CaseGenerator;

/**
 * Use evolutive algorithms to calculate phase extensions.
 */
class TimeIncrementEvolutiveStrategy : public TimeIncrementCalculationStrategy{
public:
	TimeIncrementEvolutiveStrategy();
	virtual ~TimeIncrementEvolutiveStrategy();

	virtual Case* run(LocalView* lv, int phaseId);

	virtual void onStop();

private:
	CaseGenerator* mEvolutiveAlgorithm;
};

#endif /* TIMEINCREMENTEVOLUTIVESTRATEGY_H_ */
